Page-oriented development can be used to deliver applications via ubiquitous universal HTML document browsers. These so-called “web applications” often share one or more of the following features: little to no startup delay; loading only the view the user works with at any moment in time; simple lifecycle/construction of views: a single top-to-bottom rendering pass; views are separated by “hard breaks” (navigations) that essentially restart and recreate the client and force developers to persist the state they care about while throwing away everything else; the client essentially restarts in between every view Oust with different input parameters), resisting accumulated memory leaks, rogue processes and UT state corruption; and each view automatically gets a URL that typically can be used to reload or jump directly to it.
These qualities, combined with the tolerance of HTML browsers to syntactical errors, make web application UIs dramatically robust and resilient as compared to their fat client predecessors.
On the other hand, web applications may encourage sloppy development. Other drawbacks relate to implementing a dynamic UT in a static page model: the top-to-bottom rendering pass may sometimes be too simple for highly interactive interfaces and/or excessive page reloads may be required. Asynchronous Javascript+XML (AJAX) techniques attempt to patch some of these weak spots, but the main views themselves may remain distinct pages separated by navigations.
Another option for web-based application delivery uses platform-independent application code developed in a more traditional sense but executed via a platform-specific runtime/execution environment. For example, ADOBE® FLEX BUILDER™ is an increasingly popular development environment that makes use of the ACTIONSCRIPT™ programming language to define files that are complied for execution via ADOBEL® FLASH and/or AIR® (all available from Adobe Systems Incorporated of San Jose, Calif.).
Developers may desire to utilize the more robust execution capabilities of a runtime environment rather than a browser, but may nonetheless wish to maintain some of the advantages of page-based development.